1. Technical Field
The present invention relates in general to a system and method for providing a persistent function server. More particularly, the present invention relates to a system and method for providing a support processor that is persistently programmed to support a particular software application's requirements in a heterogeneous processor environment.
2. Description of the Related Art
Computer systems are becoming more and more complex. The computer industry typically doubles the performance of a computer system every 18 months (e.g. personal computer, PDA, gaming console). In order for the computer industry to accomplish this task, the semiconductor industry produces integrated circuits that double in performance every 18 months. A computer system uses integrated circuits for particular functions based upon the integrated circuits' architecture. Two fundamental architectures are 1) microprocessor-based and 2) digital signal processor-based.
An integrated circuit with a microprocessor-based architecture is typically used to handle control operations whereas an integrated circuit with a digital signal processor-based architecture is typically designed to handle signal-processing manipulations (i.e. mathematical operations). As technology evolves, the computer industry and the semiconductor industry realize the importance of using both architectures, or processor types, in a computer system design.
Many computer systems use a multi-processor architecture in order to provide a substantial amount of processing power while attempting to support a wide range of software applications. For example, many computer systems use a math co-processor to perform particular functions, such as adding and subtracting two numbers. A challenge found, however is that these co-processors are hardwired to perform specific functions, regardless of what an application requires.
In addition, these co-processors are designed to support a broad range of software applications. A challenge found with this approach, however, is that these processors do not perform unique, complex tasks. For example, if a software program wishes to add one million numbers, the software program individually adds the numbers together instead of performing parallel addition processing operations in order to minimize time. As computers begin incorporating a multi-processor type, or heterogeneous, computer architecture, a challenge found is customizing one of the processor types to perform unique and complex tasks in order to support another processor type.
What is needed, therefore, is a system and method to provide a support processor in a heterogeneous processor environment that is persistently programmed based upon a software application's requirements.